RabbitMQ运行状态与可视化:https://www.pianshen.com/article/13731099362/
https://blog.csdn.net/lglgsy456/article/details/79045850
动态调整优先级的不可能性:
https://www.zhihu.com/question/264338958
php消费重试次数必须借助缓存:
https://blog.csdn.net/weixin_33291014/article/details/115501890
手动确认的重试机制:
https://blog.csdn.net/dshf_1/article/details/90241250
- 消息监听内必须使用channel对消息进行确认,不管是确认消费成功还是确认消费失败
- 消息监听内的异常处理有两种方式:
- 内部catch后直接处理,然后使用channel对消息进行确认
- 配置RepublishMessageRecoverer将处理异常的消息发送到指定队列专门处理或记录
- 监听的方法内抛出异常貌似没有太大用处。因为抛出异常就算是重试也非常有可能会继续出现异常,当重试次数完了之后消息就只有重启应用才能接收到了,很有可能导致消息消费不及时。当然可以配置RepublishMessageRecoverer来解决,但是万一RepublishMessageRecoverer发送失败了呢。。那就可能造成消息消费不及时了。所以即使需要将处理出现异常的消息统一放到另外队列去处理,个人建议两种方式:
- catch异常后,手动发送到指定队列,然后使用channel给rabbitmq确认消息已消费
- 给Queue绑定死信队列,使用nack(requque为false)确认消息消费失败
延迟队列:
https://www.cnblogs.com/mfrank/p/11260355.html
死信队列:
https://www.jianshu.com/p/986ee5eb78bc
「三年博客,如果觉得我的文章对您有用,请帮助本站成长」
共有 0 - RabbitMQ 收藏夹